package com.example.demo.service.impl;

import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.example.demo.service.SpringbootAyscService;


@Service
public class SpringbootAyscServiceImpl implements SpringbootAyscService{
	
	
	
	/**异步方法
     * 有@Async注解的方法，默认就是异步执行的，会在默认的线程池中执行，但是此方法不能在本类调用；启动类需添加直接开启异步执行@EnableAsync。
     * */
    @Async
    @Override
    public String testAysc(){
        synchronized (this){
            try {
                for (int i = 1;i <= 100;i++){
                   System.out.println(Thread.currentThread().getName()+"----------异步：>"+i);
                    this.wait(200);
                }
                return "执行异步任务完毕";
            }catch (Exception ex){
                ex.printStackTrace();
            }
        }
        return Thread.currentThread().getName()+"执行完毕";
    }

	@Override
	public String testAyscThread() {
		// TODO 自动生成的方法存根
		Build
		 synchronized (this){
	            try {
	                for (int i = 1;i <= 100;i++){
	                   System.out.println(Thread.currentThread().getName()+"----------异步：>"+i);
	                    this.wait(200);
	                }
	                return "执行异步任务完毕";
	            }catch (Exception ex){
	                ex.printStackTrace();
	            }
	        }
	        return Thread.currentThread().getName()+"执行完毕";
	}

}
